package pokpok.service;

import java.text.SimpleDateFormat;
import java.util.List;

import org.apache.struts2.ServletActionContext;
import org.displaytag.decorator.TableDecorator;

import com.google.appengine.api.datastore.KeyFactory;

import pokpok.dao.ResultatDAO;
import pokpok.domaine.Resultat;
import pokpok.domaine.Tournoi;

public class TournoiDecorator extends TableDecorator {

	public String getSupprimer() {
		Tournoi tournoi = (Tournoi) getCurrentRowObject();
		String path = ServletActionContext.getRequest().getContextPath();
		String key = KeyFactory.keyToString(tournoi.getId());
		return "<a href=\""
				+ path
				+ "/tournoi/supprimer?keyTournoi="
				+ key
				+ "\" class=\"supprimer\""
				+ "onclick=\"return(confirm('Sûr ?'))\" title=\"Supprimer le tournoi\">"
				+ "</a>";
	}

	public String getInfo() {
		Tournoi tournoi = (Tournoi) getCurrentRowObject();
		String path = ServletActionContext.getRequest().getContextPath();
		String key = KeyFactory.keyToString(tournoi.getId());
		return "<a href=\"" + path + "/tournoi/info?keyTournoi=" + key
				+ "\" class=\"info\"" + " title=\"Infos du tournoi\">" + "</a>";
	}

	public String getModifier() {
		Tournoi tournoi = (Tournoi) getCurrentRowObject();
		String path = ServletActionContext.getRequest().getContextPath();
		String key = KeyFactory.keyToString(tournoi.getId());
		return "<a href=\"" + path + "/tournoi/modifier?keyTournoi=" + key
				+ "\" class=\"modifier\"" + " title=\"Modifier le tournoi\">"
				+ "</a>";
	}

	public String getDateFormat() {
		Tournoi tournoi = (Tournoi) getCurrentRowObject();
		SimpleDateFormat format = new SimpleDateFormat("dd-MM-yyyy");
		return format.format(tournoi.getDate());
	}

	public String getNbJoueurs() {
		Tournoi tournoi = (Tournoi) getCurrentRowObject();
		return tournoi.getNbJoueurs() + "";
	}

	public String getGagnant() {
		Tournoi tournoi = (Tournoi) getCurrentRowObject();
		ResultatDAO rDAO = new ResultatDAO();
		List<Resultat> resultats = rDAO.findByTournoi(tournoi);
		for (Resultat resultat : resultats) {
			if (resultat.getPosition() == 1) {
				return resultat.getJoueur().getLibelle();
			}
		}
		return "Erreur gagnant";
	}
}
